#include <func.h>

//子进程结束，父进程通过wait拿子进程的退出码
int main()
{
    pid_t pid=fork();
    if(0==pid)//子进程
    {
        printf("I am child,%d ppid=%d\n",getpid(),getppid());
        return 1;
    }else{
        printf("I am parent %d\n",getpid());
        pid_t child_pid;
        int child_status;//存储子进程的情况
        child_pid=waitpid(pid,&child_status,0);//和wait等价的
        //child_status 存储两个内容，1 可以知道子进程是否崩溃 2 退出码
        if(WIFEXITED(child_status))
        {
            printf("子进程正常结束，exit code=%d\n",WEXITSTATUS(child_status));
        }else{
            printf("子进程崩溃了，exit code=%d\n",WEXITSTATUS(child_status));
        }
        printf("回收 %d 成功\n",child_pid);
        return 0;
    }
}